<?php
require_once 'login.php';
require_once 'Model/Local.php';
require_once 'Model/Endereco.php';
require_once 'Model/Bairro.php';
require_once 'Model/Cidade.php';
require_once 'DAO/DaoEmpresa.php';
require_once 'DAO/DaoEventos.php';
require_once 'DAO/DaoLocal.php';
require_once 'DAO/DaoImagemEmpresa.php';

class MeusEventosController {

    private $empresa;

    function MeusEventosController() {
        if (LoginController::singleton()->estaConectado()) {
            $this->empresa = LoginController::singleton()->getUsuario();

            if (LoginController::singleton()->getTipo() == TIPO_EMPRESA) {
                $this->verificaUpdateEvento();
            }
        }
    }

    function verificaUpdateEvento() {
        $this->verificaRemoverImagensEvento();
        $this->verificaUpdateImagemEvento();
        $this->verificaAddImagensEvento();
        if (isset($_POST['formDeleteUpdateEvento'])) {
            if (is_numeric($_POST['edtEvento'])) {
                if ($_POST['btnSubmit'] == 'update') {
                    $de = new DaoEventos();
                    $evento = $de->getEvento($_POST['edtEvento']);
                    $dl = new DaoLocal();
                    $local = $dl->getLocal($evento->getLocal()->getCodigo());
                    require_once 'viewEditarEvento.php';

                    //echo 'Aqui falta Terminar';
                } else if ($_POST['btnSubmit'] == 'delete') {
                    $dev = new DaoEventos();
                    $dev->deleteEventoByCodigo($_POST['edtEvento']);
                    require_once 'viewMeusEventos.php';
                }
            }
        } else {
            if (isset($_POST['formEditarEvento'])) {
                if ($_POST['btnSubmit'] == 'update') {
                    $de = new DaoEventos();
                    $evento = $de->getEvento($_POST['codEvento']);
                    $this->updateEvento($evento);
                    require_once 'viewMeusEventos.php';
                }
            } else {
                require_once 'viewMeusEventos.php';
            }
        }
    }

    function verificaAddImagensEvento() {
        if (isset($_POST['formAddImagensEvento'])) {
            $DaoEvento = new DaoEventos();
            $evento = $DaoEvento->getEvento($_POST['edtEvento']);
            $idEvento = $evento->getCodigo();
            $imagem = new Imagem();
            $imagem->setDescricao("Imagem");
            $imagem->setPrincipal('N');
            $imagem->setObjeto($evento);
            $DaoImagemEvento = new DaoImagemEvento();
            $arquivos = 0;
            for ($i = 0; $i < count($_FILES['edtAddFotos']['name']); $i++) {
                if ($_FILES['edtAddFotos']['error'][$i] == UPLOAD_ERR_OK) {
                    if (is_uploaded_file($_FILES['edtAddFotos']['tmp_name'][$i])) {
                        $arquivos = $arquivos + 1;
                        $caminho = "eventos/E$idEvento-" . time() . "-F$arquivos.jpg";
                        if (move_uploaded_file($_FILES['edtAddFotos']['tmp_name'][$i], "C:/xampp/htdocs/Versao1/img/" . $caminho)) {
                            $imagem->setImagem($caminho);
                            $DaoImagemEvento->addImagem($imagem);
                        }
                    }
                }
            }
        }
    }

    function verificaRemoverImagensEvento() {
        if (isset($_POST['formRemoverImagensEvento'])) {
            $DaoImagemEvento = new DaoImagemEvento();
            $imagem = new Imagem();
            foreach ($_POST['edtRemoverImagens'] as $codImagem) {
                $imagem->setCodigo($codImagem);
                $DaoImagemEvento->removeImagem($imagem);
            }
        }
    }

    function verificaUpdateImagemEvento() {
        if (isset($_POST['formUpdateImagemEvento'])) {
            $DaoEventos = new DaoEventos();
            $evento = $DaoEventos->getEvento($_POST['edtEvento']);
            $idEvento = $evento->getCodigo();

            $imagem = new Imagem();
            $imagem->setObjeto($evento);
            $imagem->setDescricao("Simples");
            $imagem->setPrincipal("S");
            if ($_FILES['edtUpdateFoto']['error'] == UPLOAD_ERR_OK) {
                if (is_uploaded_file($_FILES['edtUpdateFoto']['tmp_name'])) {
                    $caminho = "republicas/R$idEvento-" . time() . "-F0.jpg";
                    if (move_uploaded_file($_FILES['edtUpdateFoto']['tmp_name'], "C:/xampp/htdocs/Versao1/img/" . $caminho)) {
                        $DaoImagemEvento = new DaoImagemEvento();
                        $imagem->setImagem($caminho);
                        $DaoImagemEvento->updateImagem($imagem);
                    }
                }
            }
        }
    }

    function getMeusEventos(Empresa $empresa) {
        require_once 'DAO/DaoEventos.php';
        $de = new DaoEventos();
        $eventos = $empresa->getEventos();
        ?> 
        <table class="table table-striped">
            <tr>
                <th>#</th>
                <th>Codigo</th>
                <th>Titulo</th>
                <th>Data</th>
                <th><center>Excluir/Editar</center></th>
        </tr>
        <?
        $cont = 1;
        foreach ($eventos as $evento) {
            ?>
            <form action="" method="POST">
                <input type="hidden" name="formDeleteUpdateEvento" value="formDeleteUpdateEvento"/>
                <input type="hidden" name="edtEvento" value="<? echo $evento->getCodigo(); ?>"/>
                <tr>
                    <td><? echo $cont++; ?></td>
                    <td><? echo $evento->getCodigo(); ?></td>
                    <td><a href="/Versao1/evento/<? echo $evento->getCodigo(); ?>"><? echo $evento->getTitulo(); ?></a></td>
                    <td><? echo $evento->getData(); ?></td>
                    <td><center><button class="btn" name="btnSubmit" type="submit" value="delete" title="Excluir"><i class="icon-remove"></i></button>  <button class="btn" name="btnSubmit" type="submit" value="update" title="Editar"><i class="icon-edit"></i></button></center></td>
                </tr>
            </form>
        <? } ?>
        </table>
        <a href="/Versao1/cadastroEvento" class="btn"><i class="icon-plus"> </i>  Novo Evento</a>
        <?
    }

    function updateEvento(Evento $ev) {
        $de = new DaoEventos();
        $dl = new DaoLocal();
        $loc = new Local();
        $loc->setCodigo($ev->getLocal()->getCodigo());
        $loc->setDescricao($_POST['edtDescricaoLocal']);
        $dc = new DaoCidade();
        $loc->setCidade($dc->getCidade($_POST['edtCidade']));

        $dEnd = new DaoEndereco();
        $endereco = new Endereco();
        $endereco->setDescricao($_POST['edtEnderecoLocal']);
        $loc->setEndereco($dEnd->addEndereco($endereco));

        $loc->setNumero($_POST['edtNumero']);

        $db = new DaoBairro();
        $bairro = new Bairro();
        $bairro->setDescricao($_POST['edtBairro']);
        $loc->setBairro($db->addBairro($bairro));

        $dl->updateLocal($loc);

        $ev->setTitulo($_POST['edtNomeEvento']);
        $ev->setDescricao(nl2br($_POST['edtDescricaoEvento']));
        $ev->setCategoria(new Categoria($_POST['edtCategoriaEvento'], "a"));
        $ev->setData($_POST['edtData']);
        $ev->setHoraInicio($_POST['edtHoraInicio']);
        $ev->setHoraFim($_POST['edtHoraFim']);
        $ev->setLocal($loc);
        
        $cont = 1;
        foreach ($_POST['edtLotesMas'] as $mas) {
            $DaoLote = new DaoLote();
            $l = $DaoLote->getLote($_POST['edtCodLote'][$cont - 1]);
            if($mas!=0) $l->setVlrHomem($mas);
            
            if($_POST['edtLotesFem'][$cont - 1] !=0 ) $l->setVlrMulher($_POST['edtLotesFem'][$cont - 1]);
            
            $l->setNumero($cont);
            $l->setQuantidade($_POST['edtQuantidadeLote'][$cont - 1]);
            if($_POST['edtQuantidadeLote'][$cont - 1] != 0){
                $DaoLote->updateLote($l);
            }else{
                //$DaoLote->removeLote($l);
            }
            $cont++;
        }
        
        $de->updateEvento($ev);
    }

    public function getEmpresa() {
        return $this->empresa;
    }

}
?>
